package com.burst.reptile.modular.zp.mapper;

import com.burst.reptile.modular.api.form.QueryResForm;
import com.burst.reptile.modular.zp.entity.ZpResources;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

/**
 * <p>
 * 资源列表 Mapper 接口
 * </p>
 *
 * @author wujin
 * @since 2020-06-15
 */
public interface ZpResourcesMapper extends BaseMapper<ZpResources> {

	/**
	 * 分页获取推荐列表
	 * @param page 分页信息
	 * @param userId 用户ID
	 * @return
	 */
	Page<ZpResources> pageListByRec(@Param("page") Page<ZpResources> page, @Param("userId") Long userId);

	/**
	 * 加点赞数量
	 * @param articleId 文章ID
	 * @return
	 */
	int incrVote(@Param("articleId") Long articleId);

	/**
	 * 减点赞数量
	 * @param articleId 文章ID
	 * @return
	 */
	int decrVote(@Param("articleId") Long articleId);
	
	/**
	 * 加收藏数量
	 * @param articleId 文章ID
	 * @return
	 */
	int incrCollect(@Param("articleId") Long articleId);
	
	/**
	 * 减收藏数量
	 * @param articleId 文章ID
	 * @return
	 */
	int decrCollect(@Param("articleId") Long articleId);

	
	/**
	 * 累加阅读
	 * @param articleId 文章ID
	 * @return
	 */
	int incrRead(@Param("articleId") Long articleId);

	/**
	 * 分页获取我全部资源
	 * @param page 分页信息
	 * @param query 查询条件
	 * @return
	 */
	Page<ZpResources> myPageList(@Param("page") Page<ZpResources> page, @Param("query") QueryResForm query);

	/**
	 * 获取信息列表
	 * @param query
	 * @return
	 */
	List<ZpResources> selectDataList(@Param("query") QueryResForm query);

	/**
	 * 定时发布更新信息状态
	 * @param id 信息ID
	 * @return
	 */
	int timingPublish(@Param("id") Long id);
}
